home *** CD-ROM | disk | FTP | other *** search
/ Nautilus 1992 July / Nautilus-3-8 / Nautilus-3-8.bin / Tools & Utilities / Techy Stuff / Source ƒ / sky source ƒ / OUTPUT.C < prev    next >
Encoding:
C/C++ Source or Header  |  1992-06-16  |  1.4 KB  |  99 lines

  1. #include "sky.h"
  2.  
  3. output()
  4. {
  5.  
  6.     printf("%s ",object);
  7.  
  8.     if(flags&TOPO){
  9.         prhms(ra,3);
  10.         prdms(decl2,2);
  11.         printf(" %8.4f %8.4f %7.2f\n", az, el, mag);
  12.     }
  13.     if((flags&GEO)){
  14.         if((flags&ECLIPTIC)){
  15.             while(geolam < 0.0) geolam += 2.*pi;
  16.             prdms(geolam,3);
  17.             prdms(geobet,2);
  18.             printf("\n");
  19.         }else{
  20.             prhms(alpha,3);
  21.             prdms(delta,2);
  22.             printf(" %8.3f\n", semi);
  23.         }
  24.     }
  25.     if((flags&HELIO)){
  26.         while(lambda<0)
  27.             lambda += 2.*pi;
  28.         while(lambda > 2.*pi)
  29.             lambda -= 2.*pi;
  30.         prdms(lambda,3);
  31.         prdms(beta,3);
  32.         printf(" %13.7f\n", rad);
  33.     }
  34. }
  35.  
  36. prhms(arg,n)
  37. double arg;
  38. int n;
  39. {
  40.     int n1, n2, n3, n4;
  41.     double x;
  42.     char *format = " %2d %02d %02d.%03d";
  43.  
  44.     format[17] = n + '0';
  45.  
  46.     while(arg < 0.) arg += 2.*pi;
  47.     arg /= 15.;
  48.     x = arg/radian;
  49.     n1 = floor(x);
  50.     x = (x-n1)*60.;
  51.     n2 = floor(x);
  52.     x = x - n2;
  53.     x = x * 60.;
  54.     n3 = floor(x);
  55.     x = (x-n3);
  56.     while(n--){
  57.         x = 10.*x;
  58.     }
  59.     n4 = floor(x+.5);
  60.     printf(format, n1, n2, n3, n4);
  61. }
  62.  
  63. prdms(arg,n)
  64. double arg;
  65. int n;
  66. {
  67.     int n1, n2, n3, n4;
  68.     double x;
  69.     int sign;
  70.     char *format1 = " %02d %02d.%02d";
  71.  
  72.     format1[13] = n + '0';
  73.     if(arg<0.){
  74.         arg = -arg;
  75.         sign = -1;
  76.     }else{
  77.         sign = 1;
  78.     }
  79.     x = arg/radian;
  80.     n1 = floor(x);
  81.     x = (x-n1)*60.;
  82.     n2 = floor(x);
  83.     x -= n2;
  84.     x *= 60.;
  85.     n1 *= sign;
  86.     if((n1==0)&&(sign== -1)){
  87.         printf("   -0");
  88.     }else{
  89.         printf("%5d", n1);
  90.     }
  91.     n3 = floor(x);
  92.     x = x - n3;
  93.     while(n--){
  94.         x = 10. * x;
  95.     }
  96.     n4 = floor(x+.5);
  97.     printf(format1, n2, n3, n4);
  98. }
  99.